<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Voro++: voro::radius_poly Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Voro++
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript" src="dynsections.js"></script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><b>voro</b>      </li>
      <li class="navelem"><a class="el" href="classvoro_1_1radius__poly.html">radius_poly</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Data Fields</a> &#124;
<a href="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">voro::radius_poly Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="voro::radius_poly" -->
<p>Class containing all of the routines that are specific to computing the radical Voronoi tessellation.  
 <a href="classvoro_1_1radius__poly.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for voro::radius_poly:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="classvoro_1_1radius__poly.png" usemap="#voro::radius_poly_map" alt=""/>
  <map id="voro::radius_poly_map" name="voro::radius_poly_map">
<area href="classvoro_1_1container__periodic__poly.html" title="Extension of the container_periodic_base class for computing radical Voronoi tessellations." alt="voro::container_periodic_poly" shape="rect" coords="0,56,181,80"/>
<area href="classvoro_1_1container__poly.html" title="Extension of the container_base class for computing radical Voronoi tessellations." alt="voro::container_poly" shape="rect" coords="191,56,372,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#a54ca6935b6fe7eb28e924e5c2b0a2abd">radius_poly</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#a9e40455c336c27b089c5a78ca94626d8">ppr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#a9faed3ac8ef95c646e376a7fe915fb0b">max_radius</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#aa8dcd117e31007933a37454ef9ccb4d9">r_init</a> (int ijk, int s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#a19b9bc7dd97869e6ac440662912f4911">r_prime</a> (double rv)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#a5e74adfce3978911c901f0eb5dbb2c90">r_ctest</a> (double crs, double mrs)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#a33cecd36b74cc748fb91b5c9f60f08e9">r_cutoff</a> (double lrs)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#a86eda87db1ab281a251e43236bbc26c1">r_max_add</a> (double rs)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#ab9a81c60cf27739db39faa28591d5650">r_current_sub</a> (double rs, int ijk, int q)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#a8357f4c9d6e20d739029dcb76705e316">r_scale</a> (double rs, int ijk, int q)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1radius__poly.html#aba9f2a8086de090f84f714510e6914fb">r_scale_check</a> (double &amp;rs, double mrs, int ijk, int q)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="classvoro_1_1container__poly.html" title="Extension of the container_base class for computing radical Voronoi tessellations.">container_poly</a> and <a class="el" href="classvoro_1_1container__periodic__poly.html" title="Extension of the container_periodic_base class for computing radical Voronoi tessellations.">container_periodic_poly</a> classes are derived from this class, and during the Voronoi cell computation, these routines are used to create the radical Voronoi tessellation. </p>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00080">80</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a54ca6935b6fe7eb28e924e5c2b0a2abd"></a><!-- doxytag: member="voro::radius_poly::radius_poly" ref="a54ca6935b6fe7eb28e924e5c2b0a2abd" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">voro::radius_poly::radius_poly </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The class constructor sets the maximum particle radius to be zero. </p>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00090">90</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a5e74adfce3978911c901f0eb5dbb2c90"></a><!-- doxytag: member="voro::radius_poly::r_ctest" ref="a5e74adfce3978911c901f0eb5dbb2c90" args="(double crs, double mrs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool voro::radius_poly::r_ctest </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>crs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>mrs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Carries out a radius bounds check. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">crs</td><td>the radius squared to be tested. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">mrs</td><td>the current maximum distance to a Voronoi vertex multiplied by two. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if particles at this radius could not possibly cut the cell, false otherwise. </dd></dl>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00109">109</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<a class="anchor" id="ab9a81c60cf27739db39faa28591d5650"></a><!-- doxytag: member="voro::radius_poly::r_current_sub" ref="ab9a81c60cf27739db39faa28591d5650" args="(double rs, int ijk, int q)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double voro::radius_poly::r_current_sub </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ijk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>q</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Subtracts the radius squared of a particle from a given value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rs</td><td>the value to consider. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ijk</td><td>the block that the particle is within. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">q</td><td>the index of the particle within the block. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The value with the radius squared subtracted. </dd></dl>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00124">124</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a33cecd36b74cc748fb91b5c9f60f08e9"></a><!-- doxytag: member="voro::radius_poly::r_cutoff" ref="a33cecd36b74cc748fb91b5c9f60f08e9" args="(double lrs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double voro::radius_poly::r_cutoff </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>lrs</em></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Scales a plane displacement during a plane bounds check. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">lrs</td><td>the plane displacement. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The scaled value. </dd></dl>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00113">113</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<a class="anchor" id="aa8dcd117e31007933a37454ef9ccb4d9"></a><!-- doxytag: member="voro::radius_poly::r_init" ref="aa8dcd117e31007933a37454ef9ccb4d9" args="(int ijk, int s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::radius_poly::r_init </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ijk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is called prior to computing a Voronoi cell for a given particle to initialize any required constants. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ijk</td><td>the block that the particle is within. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>the index of the particle within the block. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00096">96</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a86eda87db1ab281a251e43236bbc26c1"></a><!-- doxytag: member="voro::radius_poly::r_max_add" ref="a86eda87db1ab281a251e43236bbc26c1" args="(double rs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double voro::radius_poly::r_max_add </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rs</em></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Adds the maximum radius squared to a given value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rs</td><td>the value to consider. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The value with the radius squared added. </dd></dl>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00117">117</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a19b9bc7dd97869e6ac440662912f4911"></a><!-- doxytag: member="voro::radius_poly::r_prime" ref="a19b9bc7dd97869e6ac440662912f4911" args="(double rv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::radius_poly::r_prime </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rv</em></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sets a required constant to be used when carrying out a plane bounds check. </p>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00102">102</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a8357f4c9d6e20d739029dcb76705e316"></a><!-- doxytag: member="voro::radius_poly::r_scale" ref="a8357f4c9d6e20d739029dcb76705e316" args="(double rs, int ijk, int q)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double voro::radius_poly::r_scale </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ijk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>q</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Scales a plane displacement prior to use in the plane cutting algorithm. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rs</td><td>the initial plane displacement. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ijk</td><td>the block that the particle is within. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">q</td><td>the index of the particle within the block. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The scaled plane displacement. </dd></dl>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00133">133</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<a class="anchor" id="aba9f2a8086de090f84f714510e6914fb"></a><!-- doxytag: member="voro::radius_poly::r_scale_check" ref="aba9f2a8086de090f84f714510e6914fb" args="(double &amp;rs, double mrs, int ijk, int q)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool voro::radius_poly::r_scale_check </td>
          <td>(</td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>rs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>mrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ijk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>q</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Scales a plane displacement prior to use in the plane cutting algorithm, and also checks if it could possibly cut the cell. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">rs</td><td>the plane displacement to be scaled. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">mrs</td><td>the current maximum distance to a Voronoi vertex multiplied by two. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ijk</td><td>the block that the particle is within. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">q</td><td>the index of the particle within the block. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the cell could possibly cut the cell, false otherwise. </dd></dl>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00146">146</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="a9faed3ac8ef95c646e376a7fe915fb0b"></a><!-- doxytag: member="voro::radius_poly::max_radius" ref="a9faed3ac8ef95c646e376a7fe915fb0b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classvoro_1_1radius__poly.html#a9faed3ac8ef95c646e376a7fe915fb0b">voro::radius_poly::max_radius</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The current maximum radius of any particle, used to determine when to cut off the radical Voronoi computation. </p>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00087">87</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a9e40455c336c27b089c5a78ca94626d8"></a><!-- doxytag: member="voro::radius_poly::ppr" ref="a9e40455c336c27b089c5a78ca94626d8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double** <a class="el" href="classvoro_1_1radius__poly.html#a9e40455c336c27b089c5a78ca94626d8">voro::radius_poly::ppr</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A two-dimensional array holding particle positions and radii. </p>

<p>Definition at line <a class="el" href="rad__option_8hh_source.html#l00083">83</a> of file <a class="el" href="rad__option_8hh_source.html">rad_option.hh</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="rad__option_8hh_source.html">rad_option.hh</a></li>
</ul>
</div>


<hr class="footer"/><address class="footer"><small>
Generated on Fri Sep 23 2011 22:49:07 for Voro++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
